/*
 * Copyright (c) 2012 SUBSECRETARIA DEFENSORIA DEL ESPACIO PUBLICO - SDEP.
 * All Rights Reserved.
 * This software is the confidential and proprietary information of SDEP
 * Developed By CONSTULT-SOFT S.A, Development Team 2012.
 *
 */
package co.gov.medellin.sdep.sisdep.common.service;

import java.util.List;

import co.gov.medellin.sdep.sisdep.common.exception.ArchivoAnexoException;
import co.gov.medellin.sdep.sisdep.model.ArchivoAnexo;


/**
 * <p>
 * Interface que define todos los servicios necesarios para la gestion de carga de archivos en servidor SISDEP.
 * </p>
 * <p>
 * Copyright (c) 2012<BR>
 * Consult-Soft S.A.<BR>
 * Created on: May 28, 2012<BR>
 * 
 * @author atabares
 * </p>
 */
public interface IArchivoAnexoService {

	/**
	 * 
	 * @param newArchivoAnexo
	 * @throws ArchivoAnexoException
	 */
	void insert(ArchivoAnexo newArchivoAnexo) throws ArchivoAnexoException;

	/**
	 * 
	 * @param newArchivoAnexo
	 * @throws ArchivoAnexoException
	 */
	void update(ArchivoAnexo newArchivoAnexo) throws ArchivoAnexoException;

	/**
	 * 
	 * @param newArchivoAnexo
	 * @throws ArchivoAnexoException
	 */
	void delete(ArchivoAnexo newArchivoAnexo) throws ArchivoAnexoException;

	/**
	 * Metodo que permite obtener un listado de los items de archivo anexo asociados
	 * con un elemento en particular
	 * @param criteria
	 * @return
	 * @throws ArchivoAnexoException
	 */
	List loadByCriteria(ArchivoAnexo criteria) throws ArchivoAnexoException;

	/**
	 * 
	 * @param id
	 * @return
	 * @throws ArchivoAnexoException
	 */
	ArchivoAnexo get(long id) throws ArchivoAnexoException;

	/**
	 * 
	 * @return
	 * @throws ArchivoAnexoException
	 */
	Long getCurrentInsert() throws ArchivoAnexoException;

}
